home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
ugoku
/
src.lzh
/
MOVRECG
/
MRCGSET.C
< prev
next >
Wrap
Text File
|
1994-09-09
|
12KB
|
532 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <file_dlg.h>
#include <tifflib.h>
#include <egb.h>
#include <mos.h>
#include <snd.h>
#include "ugoku.h"
#include "mrcdef.h"
extern int mouseSwCheck() ;
extern int errorCheck( int ) ;
extern char *guiEgbPtr ; /* EGB é╠âÅü[âNâAâhâîâX */
extern char *rbuf ; /* Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX */
extern char *bbuf ; /* Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX */
extern int baseDialogId ;
int setDialogId = -1 ;
int setMesId[17] = -1 ;
int setOKBtnId = -1 ;
int setCanBtnId = -1 ;
int setSubDialogId = -1 ;
int waitNumId = -1 ;
int setBtnId[9] = -1 ;
static int playMode = 0 ; /* memory or disk */
static int movZoom = 1 ;
static int loop = 1 ;
static int wait = 0 ;
static int setFlag ;
static int movx0 ;
static int movy0 ;
static int movx1 ;
static int movy1 ;
/* ì─É╢ */
movPlay( namemov )
char *namemov ;
{
extern r_waku_clear1( int, int, int ) ;
extern r_waku_clear2( int, int, int ) ;
extern r_waku_del() ;
extern r_panel_make( int, int, int, int ) ;
extern r_panel_del() ;
int error ;
int i, ret, zoomkioku ;
int movframe, movwait ;
ret = mov_head_read_and_dsp( namemov, &movframe, &movx0, &movy0,
&movx1, &movy1, &movwait, 1, TL_malloc, TL_free );
if( ret == NOERR )
{
r_mov_graph_init( movZoom+1, movx0,movy0,movx1,movy1 ) ;
/* ö{ùªé╔éáéφé╣é─ëµû╩É▌ÆΦ */
// MG_mosDisp( 0 ) ;
r_waku_clear1( movx1-movx0+1, movy1-movy0+1, movZoom+1 ) ;
EGB_displayPage(guiEgbPtr,0,3);
// MG_mosDisp( 1 ) ;
}
else
return ret ;
v01:
/* â}âEâXé¬ëƒé│éΩé─éóéΩé╬ăé╠âCâxâôâgé≡û│Äï */
if( mouseSwCheck() )TL_setInvalidMosFlag() ;
MMI_SendMessage( setDialogId, MM_ATTACH, 1, baseDialogId ) ;
for( i=2 ; i<8 ; i++ ) /* â{â^âôâNâèâAü[(2ü`8) (0,1é═æ╢ì▌é╡é╚éó) */
MTL_resetFlagObj( setBtnId[i], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
MTL_setFlagObj( setBtnId[playMode+2], (MS_UNSELECT | MS_TOGGLE) ) ;
MTL_setFlagObj( setBtnId[movZoom+4], (MS_UNSELECT | MS_TOGGLE) ) ;
if( loop == 1 ) MTL_setFlagObj( setBtnId[8], MS_TOGGLE ) ;
else MTL_resetFlagObj( setBtnId[8], (~MS_TOGGLE) ) ;
MMI_SendMessage( setDialogId, MM_SHOW, 0 ) ; /* î⌐é╣éΘ */
zoomkioku = movZoom ;
MMI_ExecSystem() ; /* Dialogò\Īé╓ÑÑÑâCâxâôâgâïü[âv */
MMI_SendMessage( setDialogId, MM_ERASE, 0 ) ;
MMI_SendMessage( setDialogId, MM_DETACH, 0 ) ;
loop = (MTL_checkFlagObj( setBtnId[8], MS_TOGGLE )==MS_TOGGLE) ? 1:0 ;
error = 0 ;
if( setFlag == TRUE )
{
MG_mosDisp( 0 ) ;
if( movZoom != zoomkioku ) /* ö{ùªé╠ò╧ìXé¬éáéΘé╞é½ */
{
r_waku_del() ;
r_mov_graph_init( movZoom+1, movx0,movy0,movx1,movy1 ) ;
/* ö{ùªé╔éáéφé╣é─ëµû╩É▌ÆΦ */
}
r_panel_make( 0, 0, 639, 19 ) ;
r_waku_clear2( movx1-movx0+1, movy1-movy0+1, movZoom+1 ) ;
MG_mosDisp( 0 ) ;
if( playMode == 0 )
{
error = r_mov_memory_play( namemov, wait, loop, 0 ) ;
}
else
{
error = r_mov_disk_play( namemov, wait, loop, 0 ) ;
}
MMI_FlushEvnt() ;
MG_mosDisp( 1 ) ;
r_waku_clear1( movx1-movx0+1, movy1-movy0+1, movZoom+1 ) ;
r_panel_del() ;
}
else
{
r_waku_del() ;
r_panel_del() ;
EGB_displayPage(guiEgbPtr,0,1);
return NOERR ;
}
if( error )
{
errorCheck( error ) ;
}
else
{
goto v01 ;
}
r_waku_del() ;
EGB_displayPage(guiEgbPtr,0,1);
return NOERR ;
}
/* initDataIRCSET:setOKBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö */
/* initDataIRCSET:setCanBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö */
int setOKchk(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
if( kobj == setOKBtnId )
setFlag = TRUE ;
else
setFlag = FALSE ;
MMI_SetHaltFlag( TRUE ) ;
return NOERR ;
}
/* âEâFâCâgÆlé≡É▌ÆΦ */
/* initDataIMVSET:waitNumId:MJ_NUMBOXL40é╠î─é╤Åoé╡è╓Éö */
int waitSet(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int var, min, max, delta, ptColumn ;
MMI_SendMessage( kobj, MM_GETNUMBOX, 5,
&var, &min, &max, &delta, &ptColumn ) ;
wait = var ;
return NOERR ;
}
/* ì─É╢ù╠êµé≡É▌ÆΦüiâëâWâIâ{â^âôüj */
/* initDataIMVSET:setBtnId[2]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö */
/* initDataIMVSET:setBtnId[3]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö */
int playSet(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
if( kobj == setBtnId[2] )
{
MTL_setFlagObj( setBtnId[2], MS_UNSELECT ) ;
MTL_resetFlagObj( setBtnId[3], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
MMI_SendMessage( setBtnId[3], MM_SHOW, 0 ) ;
playMode = 0 ; /* âüâéâèì─É╢ */
}
else
{
MTL_resetFlagObj( setBtnId[2], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
MTL_setFlagObj( setBtnId[3], MS_UNSELECT ) ;
MMI_SendMessage( setBtnId[2], MM_SHOW, 0 ) ;
playMode = 1 ; /* âfâBâXâNì─É╢ */
}
return NOERR ;
}
/* ègæσùªé≡É▌ÆΦüiâëâWâIâ{â^âôüj */
/* initDataIMVSET:setBtnId[4]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö */
/* initDataIMVSET:setBtnId[5]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö */
/* initDataIMVSET:setBtnId[6]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö */
/* initDataIMVSET:setBtnId[7]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö */
int zoomSet(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
if( kobj == setBtnId[4] )
{
MTL_setFlagObj( setBtnId[4], MS_UNSELECT ) ;
MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
movZoom = 0 ; /* 0.5ö{ */
}
else
if( kobj == setBtnId[5] )
{
MTL_setFlagObj( setBtnId[5], MS_UNSELECT ) ;
MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
movZoom = 1 ; /* éPö{ */
}
else
if( kobj == setBtnId[6] )
{
MTL_setFlagObj( setBtnId[6], MS_UNSELECT ) ;
MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
movZoom = 2 ; /* 1.5ö{ */
}
else
{
MTL_setFlagObj( setBtnId[7], MS_UNSELECT ) ;
MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
movZoom = 3 ; /* éQö{ */
}
return NOERR ;
}
/* on memory type */
r_mov_memory_play( name, wait, rep, page )
char *name;
int wait, rep, page;
{
extern int playCheck() ;
char *work ;
int frame,x0,y0,x1,y1,wsize;
int error;
r_mov_dual_frame_set( name ) ;
error
= mov_memory_play_init( name, playCheck,&frame,&x0,&y0,&x1,&y1,
&wsize );
if( error )goto vd10;
if( (work = (char *)TL_malloc( wsize )) == NULL ){
error = 7;
goto vd10; /* out of memory */
}
/* mute */
int s ;
SND_get_elevol_mute( &s ) ;
SND_elevol_mute( s | 0x03 ) ;
error = mov_memory_play_repeat( rbuf, work, name, 2, wait, -rep);
SND_elevol_mute( s ) ;
TL_free( work );
vd10:
r_mov_dual_frame_end() ;
return error;
}
/* disk read type */
r_mov_disk_play( name, wait, rep, page )
char *name;
int wait, rep, page;
{
extern int playCheck() ;
char *work ;
int frame,x0,y0,x1,y1,wsize;
int error;
r_mov_dual_frame_set( name ) ;
error
= mov_disk_play_init( name, playCheck,&frame,&x0,&y0,&x1,&y1,
&wsize );
if( error )goto vd10;
if( (work = (char *)TL_malloc( wsize )) == NULL ){
error = 7;
goto vd10; /* out of memory */
}
/* mute */
int s ;
SND_get_elevol_mute( &s ) ;
SND_elevol_mute( s | 0x03 ) ;
error = mov_disk_play_repeat( rbuf, work, name, 2, wait, -rep);
SND_elevol_mute( s ) ;
TL_free( work );
vd10:
r_mov_dual_frame_end() ;
return error;
}
r_mov_dual_frame_set( char *name )
{
int x[4], y[4] ;
r_mov_graph_init_sub( movZoom+1, movx0,movy0,movx1,movy1, x, y ) ;
if( (x[0] > 0) || (y[0] > 0) )
r_mov_dual_frame_set_sub() ;
EGB_displayPage(guiEgbPtr,0,0);
EGB_resolution(guiEgbPtr,0,10);
EGB_resolution(guiEgbPtr,1,10);
EGB_writePage(guiEgbPtr,0);
EGB_displayStart(guiEgbPtr,3,0,0);
EGB_displayStart(guiEgbPtr,2,1,1);
EGB_d